Image forming apparatus, controlling method, and control program

ABSTRACT

An image forming apparatus in which programs for controlling processes that are provided by the image forming apparatus are installed. The image forming apparatus includes means for managing the use amount of each program by use of a counter, means for recognizing the counter which corresponds to the identification information of the program and can manage the use amount of the program, means for correlating the program with the counter recognized by the recognizing means to manage the counter, means which can set an upper limit on the use amount of each program for the use amount managing means, and means for controlling the process by the image forming apparatus based on the upper limit of the use amount set by the setting means for each of the types of the programs.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an image-forming apparatus in whichprograms for controlling operations in the apparatus are installed, amethod of controlling the same, and a control program.

2. Description of the Related Art

Hitherto, as mechanisms for counting the total output numbers (e.g., thetotal cumulative number of pages printed) of image-forming apparatuses,hard counters having mechanical structures have been generally used.With the hard counters, it is difficult to change the count, e.g.,reduce it after the count-up is carried out. Thus, the hard counters aremeans suitable for use in service accounting systems due to theabove-described feasibilities thereof. On the other hand, the functionsof image forming apparatuses have been complicated. Accordingly, therehas been increasing demanded for the service accounting system to bedivided depending on the intended use, e.g., “small-size”/“large-size”,“color”/“black and white”, and “copy/print/FAX”. To satisfy this demand,simply, the number of hard counters has been increased. Moreover, it hasbeen proposed that soft counters can realize a large number of countersat a reduced cost with small spaces (A “soft counter” is one that storesa count value in a semiconductor memory.).

Regarding prior art soft counters, information in a memory is ready tobe lost, and the reliability is low. Thus, a plurality of memory unitsare prepared, and the same values are stored in the memory units. Ifinternal information in a memory is lost, the information is compensatedby use of the information stored in another of the memory units.Thereby, the reliability is enhanced. Soft counters can be prepared foreach function to be counted, so that correct count information can bemaintained for each function. Hereinafter, in the specification, thesoft counter is referred to as a “counter”, for brevity. In the presentinvention, “counter” is the general term for a means which can count andstore different kinds of use amounts such as the execution numbers ofprograms in printers, facsimiles, scanners, copying machines, orcomposite machines of several of these sets of capabilities which aretypical examples of image forming apparatus, the operation number of theapparatus, the use durations of application programs, and so forth.

A printing machine in which a counter is provided for each of differentprograms installed in an image forming apparatus is under development.Moreover, a printing machine has been developed in which a user can usedifferent services by execution of the different programs installed inthe printer. For example, as described in Japanese Patent Laid-Open No.2001-92779, software techniques for image forming apparatuses have beenincreased, and different types of software which realize operations inthe image forming apparatus can be more easily added, altered, deleted,and so forth. Furthermore, a printer in which a counter is fixedlyprovided for each application to count the execution number of theapplication is under investigation.

SUMMARY OF THE INVENTION

However, for installed applications, different types of programs such ascontrol programs, and data, addition, alteration, and deletion have beenpossible. Therefore, it is inconvenient that counters are allocated inadvance and fixedly to the various processes which are provided by animage forming apparatus.

In particular, the opportunity for programs for providing operations inthe image forming apparatus to be changed, has increased.Problematically, the functions of the image forming apparatus cannotsuitably be managed by means of conventional static counter management.Moreover, a printer which provides composite functions has beendeveloped. It becomes a problem to manage the use amounts of thefunctions respectively.

It is one of the features of the present invention to provide an imageforming apparatus which can flexibly cope with changes in theconfiguration of functions provided by different types of programsinstalled in the image forming apparatus.

In particular, it is another feature of the present invention to providean image forming apparatus in which counters for managing the useamounts of programs can be dynamically managed, so that the useconditions of the respective programs can be appropriately grasped evenif the functions of the image forming apparatus and the programconfiguration are changed.

It is still another feature of the present invention to provide an imageforming apparatus in which for the respective processes provided by theprograms installed in the image forming apparatus, e.g., an upper limiton the use amount of a program can be set, so that the use amount ofeach program can be easily managed.

It is yet another feature of the present invention to provide amechanism by which the use licenses of applications can be given tousers in advance in the form of license information with respect to eachtype of the applications and/or for each of the used devices.

According to the present invention, there is provided an image formingapparatus which can solve the above-described problems.

An image forming apparatus of the present invention in which programsfor controlling processes that are provided by the image formingapparatus are installed, comprises means for managing the use amount ofeach program by use of a counter, means for recognizing the counterwhich corresponds to the identification information of the program andcan manage the use amount of the program, means for correlating theprogram with the counter recognized by the recognizing means to managethe counter, means which can set an upper limit for the use amount ofeach program for the use amount managing means, and means forcontrolling the process by the image forming apparatus based on theupper limit for the use amount set by the setting means for each of thetypes of the programs.

For example, in the case where a job using a predetermined function issubmitted, the processing can be performed if the use amount exceeds anupper limit set in the image forming apparatus. The processing islimited if it does not exceed the upper limit.

Further objects, features and advantages of the present invention willbecome apparent from the following description of the preferredembodiments (with reference to the attached drawings).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the configuration of a whole systemaccording to a first embodiment of the present invention.

FIG. 2 illustrates a suitable example of the software module hierarchyof a composite machine according to a first embodiment of the presentinvention.

FIG. 3 is a flowchart showing the flow of processes executed when anapplication is installed in the composite machine of the firstembodiment shown in FIG. 1.

FIG. 4 illustrates an example of a counter number—application ID tableaccording to the first embodiment.

FIG. 5 illustrates an example of a command group for instructingjob-processing.

FIG. 6 is a flowchart of processes executed by a counter updating meanswhen the counter is updated according to the first embodiment.

FIG. 7 is a flowchart of a counter contained in the composite machine ofthe first embodiment.

FIG. 8 is a flowchart of the processes executed when the installedapplication is uninstalled in the composite machine according to thefirst embodiment.

FIG. 9 shows the configuration of the software module hierarchy of acomposite machine according to a second embodiment of the presentinvention.

FIG. 10 shows an example of a screen viewed when an applicationinstaller installs according to the second embodiment.

FIG. 11 is a flowchart of the processes executed after the OK button ofFIG. 10 is pushed according to the second embodiment.

FIG. 12 shows an example of a counter number—application ID tableaccording to the second embodiment.

FIG. 13 shows an example of a count unit warning dialog box displayed atthe installing of the application executed according to the secondembodiment.

FIG. 14 shows an example of the configuration of application informationaccording to the second embodiment.

FIG. 15 is a flowchart of the processes executed by a counter updatingmeans when count-up is carried out according to the second embodiment.

FIG. 16 shows an example of a counter contained in the composite machineaccording to the second embodiment.

FIG. 17 is a flowchart of the processes executed when the applicationinstalled in the composite machine is uninstalled according to thesecond embodiment.

FIG. 18 illustrates the processes which a counter updating means and anapplication counter upper limit management means execute for eachapplication.

FIG. 19 shows a counter upper limit value management table.

DESCRIPTION OF THE PREFERRED EMBODIMENTS First Embodiment

FIG. 1 is a block diagram showing the configuration of a whole systemaccording to a first embodiment of the present invention. In FIG. 1, acomposite machine 100, which is a typical example of an image formingapparatus, has functions as a scanner, a printer, a copier, and afacsimile which are integrated together. The composite machine 100 isconnected via a network to a network server 12, which is a typicalexample of an external information processor, and a host computer 11,which is a typical example of an information processor. Moreover, thecomposite machine 100 is connected to other communication equipment viaa public network. It should be noted that the composite machine 100 isnot restricted to what is illustrated. The composite machine may be adigital copying machine, a printer having a copying function, or thelike. The number of pieces of peripheral equipments connected to thenetwork is not limited to what is illustrated. The image formingapparatus also is not restricted to the composite machine 100, and maycontain a printing machine such as a facsimile, a printer, or the like,a single-function device which can form an image, such as a scanner orthe like, and a controller contained in the respective apparatus. Thecounter may be fixed to a network board, e.g., a network interface 7 fordifferent types of printers.

The composite machine 100 mainly comprises a reader unit 1, a printerunit 2, and an image input-output control unit 3. The reader unit 1 isconnected to the printer unit 2 and the image input-output control unit3, and reads an original image and outputs the read image data to theprinter unit 2 or the image input-output control unit 3. The printerunit 2 prints the image data output from the reader unit 1 and the imageinput-output control unit 3 on recording paper. The image input-outputcontrol unit 3 is connected to an external network or a public network,and inputs-outputs image data, and stores use-amounts of the compositemachine generated when a user uses the machine. Moreover, the imageinput-output control unit 3 analyzes or controls a job (e.g., a printcommand or the like) sent from the host computer connected to thenetwork.

The image input-output control unit 3 comprises a facsimile unit 4, afile unit 5, a network interface unit 7 which is an acquiring means, aPDL formatter unit 8, and a core unit 10. The facsimile unit 4 isconnected to the core unit 10 and the public network. The unit 4 expandsimage data received via the public network and compressed, and transmitsthe expanded image data to the core unit 10. Also, the facsimile unit 4compresses image data sent from the core unit 10, and transmits thecompressed image data to the public network via a public circuit. Thefile unit 5 is connected to the core unit 10 and the memory unit 6. Thefile unit 5 compresses image data sent from the core unit 10 and causesthe compressed data together with a keyword sent from the core unit 10to be stored in the memory unit 6. The memory unit 6, which is a typicalexample of the storing means, uses a hard disk drive according to thisembodiment.

However, the unit 6 is not restricted to a hard disk. Moreover, the fileunit 5 retrieves compressed image data based on a keyword sent from thecore unit 10, reads the compressed image data to expand, and then, sendsthe data to the core unit 10.

The network interface unit 7 comprises interfaces between the hostcomputer 11, the network server 12, and the core unit 10. Receiving jobcontrol data from the host computer 11 and sending image data or thelike to the host computer 11 are carried out via the network interfaceunit 7. The job control data includes a job control command which issent together with PDL data. In this case, for example, the PDL data isexpanded and printed as image data, and then, the recording paper isprocessed into a stable sort, and is discharged. A database called MIB(Management Information Base) is configured in the network interfaceunit 7. The unit 7 can communicate with the host computer 11 provided inthe network to manage the printer unit 2. Moreover, the networkinterface unit 7 is configured in such a manner that other devicesconnected to the network can control applications in the compositemachine 100 to accept requests for installing applications by which thedifferent functions of the image forming apparatus can be realized, andthose for uninstalling applications, starting, terminating, or the like.

The formatter unit 8 is connected to the core unit 10, and expands PDLdata sent from the host computer 11 to be image data which can beprinted in the printer unit 2.

The image memory unit 9 temporarily stores information sent from thereader unit 1 and from the host computer 11 or the like via the networkinterface unit 7.

The core unit 10 which is a suitable example of a unit to function asstoring and also analyzing means controls data or the like which aresent between the reader unit 1, the facsimile unit 4, the file unit 5,the network interface unit 7, and the PDL (Page Description Language)network interface unit 7, respectively, and moreover, analyzes jobcontrol data to store information such as the situations of a user, thenumbers of copying or printing sheets, and the number of scanningsheets.

The host computer 11 (information processor) is a personal computer or awork station (PC/WS). The network server 12 controls the whole network.An accounting server 13, which is an example of an external informationprocessor, includes a server for managing accounting information of thecomposite machine 100. The accounting server 13 can display on itsdisplay a use amount which is counted by a counter provided in thecomposite machine 100 for management. An operation unit 14 includes anoperation panel. For example, an application to be carried out and afunction of the composite machine to be used for the application can beselected and input by use of a touch panel. Moreover, a command forexecuting an application can be input through the operation unit 13 ofthe composite machine 100. The execution command can be also inputthrough the network server 12 which is an example of the externalinformation processor. The use amount of the executed application iscounted by the counter contained in the composite machine 100. This willbe described below in detail.

FIG. 2 illustrates an example of the software module hierarchy of theimage forming apparatus of the first embodiment. The software modulecontains an operating system (OS) 201, a controller module 203 forcontrolling different types of devices at the upper-level next to thesystem OS 201, and an interpreter module 203 for sequentially executingprograms at the next upper-level. Further, the software module containsan application management module 204 for managing at least twodynamically-detachable application groups at the upper-level next to theinterpreter module 203. Applications 205, which realize different typesof functions, are operated under management by the applicationmanagement module 204. An application module for offering the service ofthe composite machine can be operated via the interpreter module 203.For example, an application module acquired through the external serverunit is incorporated into the image forming apparatus, andcorrespondingly, the application management module 204 adds anapplication 205 as a management object. On the other hand, anapplication program is deleted from the image forming apparatus, andcorrespondingly, the application management module 204 can remove anapplication 205 from the management objects.

An application installer 206 for installing or uninstalling anapplication 205 can be operated under management by the applicationmanagement module 204. The applications, which are typical examples ofprograms, are cooperated with the image forming apparatus to offerdifferent types of processes to users. For examples, applications forprocessing and compressing images, application programs for managing asection such as print-restricting and so forth, plug-in modules to beincorporated in as a part of an application, line-programs forremote-managing a composite machine, applications for controlling a unitsuch as finisher in a composite machine to book-bind, programs forconverting and analyzing special document data, document-preparationprograms, e.g., for word-processing, schedule-management programs,spreadsheet programs, database management programs, and server programsfor realizing print-service via an internet are available.

The above-described software is executed under the CPU (not shown)provided in the core unit 10. According to the above-describedembodiment, the interpreter and the operation system OS are incorporatedin the composite machine. Needless to say, the above-described moduleconfiguration is not restrictive, provided that the application 205operates in the image forming apparatus, and the application managementmodule 204 appropriately operates.

FIG. 3 is a flowchart of the processes executed when an application isinstalled in the composite machine 100. Hereinafter, the processes inthe application installer 206 executed when a new application isinstalled from the host computer 11 into the composite machine 100 willbe described with reference to FIG. 3. When a designation showing thatan application is to be installed is input by a pointing device (notshown) which is a preferred example of a designation-inputting means,the processing illustrated in FIG. 3 starts. First, applicationinformation is received from the host computer 11 in step S301, andincludes a vendor name, application ID, an application name, a usememory, a version number, and the latest updating date, which aretypical examples of program attribute information. This applicationinformation is used to manage the use amount of the application which isa typical example of program.

At step S301, the application installer 206 receives the applicationinformation including the application ID, which is a typical example ofthe above-described program attribute information. The applicationinstaller 206 executes the processing at step S302. In step S302, theapplication installer 206 determines whether the same application hasbeen installed or not. The application installer 206 acquires theapplication information received at the step S301, and compares it withthe application information of an application which has been alreadyinstalled to determine whether the same application has been alreadyinstalled or not. If the application installer 206 determines that thesame application exists at the step S302, the processing terminates. Ifit is determined that the same application does not exist, theprocessing advances to step S303. In step S303, the applicationinstaller 206 (determining means) assigns 0 to variable n. Theprocessing advances to step S304, in which the application installer 206determines whether the n-th application counter is being used or not. Ifit is not being used, the processing advances to step S305. In stepS305, a counter number—application table ID is updated, so that thecounter number n is made to coordinate to the application ID. In thisspecification, the counter counts the execution number (i.e., timesexecuted) of an application which is an example of the use amount of theapplication. Moreover, the counter contains a measuring and storingmeans which can count and retain the use time of an application such asa period of time for leading the application.

FIG. 4 shows an example of the counter number—application ID table. Thefollowing is shown: the counter with a counter number of 1 coordinatesto the application with an application ID number of 11, and the counterwith a counter number of 3 coordinates to the application with anapplication ID number of 11, and the other counters are not in use. Theprocessing, after the table is updated at the step S305, advances to thenext step S306. At the step S306, an application is downloaded from thehost computer, and is stored in the memory unit 6 of the compositemachine 100, so that the application is ready to be used. Then, theprocessing terminates. On the other hand, if it is determined that then-th counter is under use, the processing advances to the step S307. Instep S307, the variable is increased by 1, and then, the processingadvances to the step S308. In step S308, the application installer 206determines whether the variable n is smaller than the total number N ofthe counters for each application prepared in the composite machine 100.If the variable n is smaller than the total number N of the counters foreach application, the processing returns to the step S304. Otherwise,the processing terminates.

As described above, the installed applications execute a command groupsfor directing job processes so that the reader unit, the printer unit,or the like can be controlled, and different functions can be realized.

FIG. 5 shows an example of a command group of which each command directsa job process to be executed. The command group for directing the jobprocesses comprises a job submission start command 501, a job attributesetting command 502, a job data transmission command 503, and a jobsubmission completion command 504. The job submission start command 501posts the start of job-submission to the controller, and includes a mode511 as a parameter and additional information 512 depending on the mode.The controller starts the preparation for processing a job, when the jobsubmission start command 501 is received. The job attribute settingcommand 502 sets an attribute representing the function and state of ajob. As the attributes, an application ID, the name of a job, the typeof the job, data form, the selection of paper sheet, and so forth areavailable. At least two attributes can be continuously set by thecommands.

The job data transmission command 503 can be executed to send data, suchas image data, which is an object for job-processing. There are cases inwhich no data as a processing object is required, depending on thecontents of the jobs. In these cases, this command may be omitted. Thejob submission completion command 504 can be executed to inform that allthe commands of the group for directing the job processing have beenalready sent. The group comprising a series of the commands from the jobsubmission start command 501 to the job submission completion command504 is interpreted as one job-processing command. The controller, whenthe job-processing is instructed, controls the reader unit 1, theprinter unit 2, the file unit 5, and so forth, and processes them basedon given attributes thereof, and request to update the counter suitablydepending on the types of the job. Moreover, since the job start commandincludes the application ID information of the application whichexecutes the job start command, the controller and the counter updatingmeans can determine what application the present job is executedstarting from.

FIG. 6 is a flow chart of the processes executed in the counter updatingmeans when a counter is updated according to the first embodiment. Theflow of the processes executed in a counter managing means when thecounter is updated. First, in step S601, a counter updating request isreceived. The processing proceeds to step S602. At the step S602, thecounter updating means acquires the ID of the application of which theupdating is requested, and the processing proceeds to step S603. Thecounter updating means assigns 0 to variable n, and the processingproceeds to step S604. In step S604, it is checked whether the n-thcounter is assigned to the application with the application ID acquiredin step S604 or not by reference to the table. If the n-th counter isassigned to the application with the application ID acquired in stepS602, the processing proceeds to step S605. In step S605, the n-thcounter for the present job type is updated. The processing proceeds tostep S606, where the counter for counting the total number is updated,and then the processing terminates. On the other hand, if it isdetermined in step S604 that the n-th counter is not assigned to theapplication with the application ID acquired in step S602, theprocessing proceeds to the step S607. In step S607, it is determinedwhether the variable n is smaller than the total number N for thecounters for the applications or not. If n<N, the n value is increasedby 1 in step S608, and the processing is returned to step S604. If n<Nis not satisfied in step S607, the processing proceeds to step S606, andonly the counter for counting the total number is updated, and then theprocessing terminates.

FIG. 7 shows counters contained in the composite machine 100 by way ofexample. In this example, three-type counters, namely, a copy counter, aprint counter, and a scan counter, are prepared. For each of thesecounters, one counter for counting the total number is provided, and Ncounters (counter number of 1 to N) are prepared for each application.When the copy job is processed, the copy counter counts up every timecopying is carried out on one sheet. Similarly, for the scan job, thescan counter counts up every time one sheet is canned. For the printjob, the print counter counts up every time printing is carried out onesheet.

If the content of the counter number—application ID table is the same asthat shown in FIG. 4, the counters represented by (a) in FIG. 7 are usedby the application with an application ID number of 11. The countersrepresented by (b) in FIG. 7 are used by the application with anapplication ID number of 51. For example, when the application with anapplication ID number of 11 carries out the copy job, the counterrepresented by (c) in FIG. 7 and the counter for counting the totalnumber count up. Similarly, when the print job is carried out, thecounter represented by (d) in FIG. 7 and the counter for counting thetotal number count up. Also, when the scan job is carried out, thecounter represented by (e) in FIG. 7 and the counter for counting thetotal number count up. In the case in which a print job, a scan job, acopy job, or the like is submitted from a remote host, and theapplication ID of the application which issues one of the jobs has beenalready registered in the table, the counter corresponding to theapplication ID and the total number counter count up. If the applicationID of the application which issues the job is not registered, the job isrejected.

As described above, count values of which the number is equal to that ofthe combinations of the functions provided by the image formingapparatus with the applications using the respective functions can bemanaged. Moreover, the respective count values can be summed for eachapplication and for each function. Thereby, not only accounting for eachapplication but also the use amount for each processing using apredetermined function of the image forming apparatus in an application,called predetermined operation, can be counted. For example, in the casein which a special image processing application coordinates to thecounter number of 6, predetermined image processing such as copyingincluding electronic meshing is executed by use of an image processingapplication, the counter for copy which coordinates to the counternumber of 6 counts up. Thereby, the use amount of the predeterminedoperation such as copying using the image processing application can bemanaged. Needless to say, as the application, not only the imageprocessing application but also an application for processing an XMLdocument or processing a predetermined document file is available.Moreover, as the functions which are provided by the image formingapparatus, not only the copy, the print, and the scan functions but alsoso-called bookbinding processing such as finishing, bookbinding,punching, or the like may be available.

Hereinafter, processing carried out when uninstalling the applicationallocated to the counter having an application ID already installed willbe described below. FIG. 8 is a flowchart showing the sequence ofoperations carried out when an application already installed in thecomposite machine 100.

First, in step S801, it is checked whether a specified application isunder operation. If the application is under operation, the uninstallingterminates without further processing. If the application is not underoperation, the processing proceeds to step S802, since the uninstallingcan be safely carried out. In step S802, the counter information and theapplication information correlated to the application to be uninstalledare transmitted to the accounting server 13, and the processing proceedsto step S803. In step S803, it is checked whether the transmittedinformation has been correctly received by the accounting server 13. Inthe case where the information has been correctly received, theprocessing proceeds to step S804. In the case where the information hasnot been correctly received, the uninstalling is not carried out inpractice, and the processing terminates. In step S804, the counternumber—application ID table is updated, so that the counter allocated tothe application ID of the application to be uninstalled is made to befree. In step S805, the application is erased from the memory unit 6 tobe uninstalled, and the processing terminates.

As described above, according to this embodiment, counters being freewhen an application is installed is dynamically allocated to theapplication. Counters corresponding to an application which executes theprocessing count up. Thereby, the count numbers for copy, print, andscan can be managed for each application.

Moreover, when the application is uninstalled, the applicationinformation and the information of the used counter are stored in theaccounting server. Accordingly, the application can be installed anduninstalled freely and repeatedly without the count information beingdamaged.

According to the present embodiment, in the case where the sameapplication has been already installed at installing, the processingterminates. The version information is determined. If the version isnew, the application may be automatically installed, or alternately, auser may determine whether he continues the installing or not.

According to this embodiment, the three types of counters, that is, thecopy counter, the print counter, and the scan counter are prepared. Thecounters are not restricted to the above-described ones. More differenttypes of counters may be provided. Counters having the same function maybe finer divided depending on the size of sheets or the like.

According to this embodiment, one application is allocated to one set ofcounters. At least two applications may use the same set of counters.

Also, according to this embodiment, all the counters excluding ones forcounting the total numbers are dynamically allocated. For theapplications previously mounted onto the image forming apparatus,counters are fixedly allocated.

Moreover, according to this embodiment, an external job having anapplication ID not registered in the table is rejected. The job may beaccepted on the condition that only the counters for count the totalnumbers count up.

Second Embodiment

Hereinafter, an image forming apparatus according to a second embodimentof the present invention will be described.

FIG. 1 also shows an image forming apparatus according to the secondembodiment. This drawing is described in the First Embodiment, and isnot again described here. It should be noted that the host computer inthe second embodiment is a file server in which applications are stored.Hereinafter, especially, differences between the first and secondembodiments will be described.

FIG. 9 shows the structure of a software module hierarchy of thecomposite machine 100 according to the second embodiment. The softwaremodule contains an operating system (OS) 901, a controller module 902for controlling different devices at the next upper-level, and aninterpreter module 903 for sequentially executing programs and ageneral-use counter control application program interface 904(hereinafter, referred to as general-use counter control AP1) 904 at thenest upper-level. The software module further contains an applicationmanagement module 905 for a group of dynamically detachable applicationsat the upper level nest to the interpreter module 903 and thegeneral-use counter control API 904. Applications 906 which realizedifferent functions are operated under the application management module905 (use-amount managing means). An application installer 907 forinstalling and uninstalling an application is also operated under theapplication managing module 905. The respective applications 906 can usethe general use counter control AP1904 via the application managementmodule 905. The software can be executed under CPU (not shown) providedin the core unit 10.

Hereinafter, the operations of the application installer 907 carried outwhen an application stored in the host computer 11 is installed in thecomposite machine 100 will be described with reference to FIGS. 10 and11. A WEB server is installed in the host computer, and has apredetermined URL. For example, in this embodiment, an application isallocated to the URL of http://www.kaisha.cpm/appfile. When this URL isspecified in the operation unit 14 of the composite machine, thespecified application is downloaded from the memory area correspondingto the URL in the host computer. Thus, the application automaticallystarts to be installed. Needless to say, a URL having an applicationallocated thereto input via the operation screen of the externalcomputer 12 may be transmitted to a network. The URL may be received bythe image forming apparatus via a network interface and input to thecore unit 10, not using the operation unit 14.

FIG. 10 shows an example of a screen used when an application isinstalled by the application installer according to the secondembodiment. This screen is displayed in the operation unit 14 of thecomposite machine 100 when the installation is specified on the mainscreen (not shown) of the application installer 907. Specifically, theURL representing the host computer 11 having application information tobe installed stored therein is input in a text field 1001. Theapplication installer starts to download the application from the hostcomputer 11 in response to clicking an OK button 1002. Thus, theinstallation is carried out. The screen of FIG. 10 is restored to theapplication installer main screen (not shown) by clicking a cancelbutton on the screen.

FIG. 11 is a flow chart showing the operations to be carried out afterthe OK button is clicked. FIG. 12 shows an example of a counternumber—application ID table according to the second embodiment. FIG. 13shows an example of a count-unit warning dialog box displayed when anapplication is installed according to the second embodiment.Hereinafter, the flow chart of FIG. 11 will be described with referenceto FIGS. 11 to 13.

The OK button 1002 is clicked. First, the application installer 907acquires the application information existing at the location specifiedin the text field 1001 at step S1101. FIG. 14 shows the elementsconstituting the application information by way of example.

FIG. 14 shows an example of the configuration of the applicationinformation according to the second embodiment. In this case, as anexample of the application information, a vendor name, an application IDand an application name as identifiers for the application, version, thelatest updating date, a use counter number, a counter type, a count-upunit, a use memory, and an archive file URL from which a program isobtained are listed.

FIG. 11 is described again. If the application installer 907 can acquirethe application information which is a suitable example of the attributeinformation of a program in step S1101, the processing proceeds to stepS1102. If the application information is not acquired, the processingterminates. In step S1102, the application installer 907 which is asuitable example of a recognizing means according to the presentinvention determines and recognizes which counters of the type specifiedby the application information are free in response to the acquisitionof the application information. If no free counter numbers can berecognized, that is, counters which can manage the use amounts of aprogram newly added, that is, input via the network interface unit(input unit) of the composite machine 100 from the host computer 11 orthe like can not be recognized, the processing terminates.

On the other hand, if free counters can be recognized for all the typesprovided in the application information at the step S1102, theprocessing proceeds to step S1103. In step S1103, a recognition dialogwith respect to a count-up unit (FIG. 13) is displayed in the operationunit based on the application information. For example, the applicationname and use-accounting counted up every time the application is startedare displayed. Then, the processing proceeds to step S1104, where it isdetermined which button is clicked on the dialog screen (FIG. 13). If itis determined that the stop button 1301 is clicked, the processingterminates. If it is determined that the continuation button 1302 isclicked, the processing proceeds to step S1105. In step S1105, the mainpart of the program is trially downloaded based on the archive file URLinformation provided in the application information. If the main part ofthe program fails to be downloaded at the step S1105, an error isdisplayed, if necessary, and the processing terminates. On the otherhand, if it is successfully downloaded, the processing proceeds to stepS1106. In step S1106, the application installer (counter-managing means)the downloaded program is stored in the memory unit 6, so that theprogram is ready to be used. Then, the processing proceeds to step 1107,where the application installer additionally stores a pair of thecounter number and the application ID contained in the applicationinformation recognized in step S1102 in the counter number—applicationID table for updating. The application management module 204 initializesthe use amounts of the counters recognized by the application installer,if necessary, and terminates the processing. If a free counter can notbe recognized, that is, the application installer recognizes that thenumber of counters is deficient, new counters may be prepared so as tocorrespond to new applications and initialized to be used.

Referring to FIG. 13, the name of an application to be added isdisplayed on the application display area, and count-up informatione.g., accounting information) obtained when the application uses thescan function and the copy function, provided by the composite machine100, is displayed on the count-up information display area 1304.Accordingly, when the application is executed, a user recognizes thecount-up information which depends on whether the function should beused or not and thereafter, can install the application.

FIG. 12 shows an example of the counter number—application ID table ofthe second embodiment. As shown in FIG. 12, the tables in which thecounter numbers given to the counters coordinate to the application IDseach of which is a typical example of the identifier for an applicationare prepared for a monochromatic printer function, a color printerfunction, a monochromatic copy function, a color copy function, and ascanner function, respectively. The functions which are provided by theimage forming apparatus are not restricted to the above-described ones.For example, finishing functions such as a stipple function, abookbinding function, or the like are included. Any function isavailable, provided that the function is provided by the image formingapparatus and the use amounts (e.g., use number, use time) of thefunction can be recognized. “0xFFFFFF” is a code which represents thatthe counter is free. In this example, as shown in FIG. 12, oneapplication having the application information of FIG. 14 is installedin the image forming apparatus. The scan counter with a counter numberof 1 and the general-use counter with a counter number of 1 areallocated to the application with an application ID of 11. When apredetermined application causes a predetermined operation (e.g., theoperation of a scan function, the operation of a print function, theoperation of a finishing function, and so forth) using functions of theimage forming apparatus, the counters with the counter numbers definedin the above-described tables count up, since the above-described tablesare provided. Thus, the use amounts can be managed for each application.

As described above, the composite machine 100 is provided with theapplication management module 204 which manages the use amounts for eachprogram using the counters.

In response to the information representing the attribute of theapplication which is input to the composite machine 100, the applicationinstaller 206 recognizes the counters with which the use amounts of theapplication with an application ID which is an example of theidentification information of a program to be added can be managed.

The application management module correlates the added program with thecounters recognized by the application installer 206 and manages thecounters.

The information for identifying a program includes all the informationwith which the program can be identified. For example, in the case of anapplication program, the application ID, and the application name may besuggested. The module of application programs provided in the form of afile includes the name of the module or that of the file in which theapplication is stored. Needless to say, the module name, the file nameand the like belong to the category of program identificationinformation. Therefore, suggestibly, the program module integrated withthe application information is previously input to the image formingapparatus via the network interface, and is stored in the memory unit ofthe image forming apparatus, and in response to this, it is determinedwhether the program module is correlated with the counters or not.

The installed application executes a command group (see FIG. 5) forinstructing job operations as in the first embodiment, and can therebycontrol a reader unit 1, a printer unit 2, a finisher unit 15, and soforth. The functions of different types of composite machines can becarried out. The details have been described in the first embodiment.Thus, the repeated description is omitted.

FIG. 15 is a flow chart showing the sequences of operations carried outby a counter updating means when count-up is executed in the applicationmanagement module. Hereinafter, operations carried out when count-up isrequested for each counter will be described with reference to the flowchart of FIG. 15. First, in S1501, the application management modulereceives a count-up request, e.g., from the core unit. The processingproceeds to step S1502. In S1502, the module acquires the ID of theapplication which requests the updating. The processing proceeds to stepS1503. In step 1503, 0 is assigned to the variable n. The processingproceeds to step S1504. In step S1504, it is checked whether the n-thcounter is assigned to the application with the application ID acquiredin step S1502 or not by reference to the table. If the n-th counter isassigned to the application with the application ID acquired in stepS1502, the processing proceeds to step S1505.

In step S1505, the application management means acquires a count up unitfor the present job type from the application information. Theprocessing proceeds to step S1506. The n-th counter counts up in theunit acquired in step 1505. The processing proceeds to step S1509. Instep S1509, the application management means causes a counter forcounting the total number to count up in the unit specified based on theapplication information. Thus, the processing terminates. On the otherhand, if the application management means determines in step S1504 thatthe n-th counter is not assigned to the application with the applicationID acquired in step S1502, the processing proceeds to step S1507. Instep S1507, it is determined whether the variable n is smaller than thetotal number N for the counter for the application or not. If n<N, the nvalue is increased by 1 in step S1508, and the processing is returned tostep S1504. If n<N is not satisfied in step S1507, the processingproceeds to step S1509, and only the counter for counting the totalnumber is caused to count up in the unit specified in the applicationinformation. Then, the processing terminates.

FIG. 16 illustrates an example of counters contained in the compositemachine according to the second embodiment. In this example, six typesof counters, that is, copy counters (monochromatic), scan counters,print counters (monochromatic), color copy counters, color printcounters, and general-use counters are provided. For each of the sixtypes, one counter for counting the total number is prepared, and Ncounters (the counter numbers of 1 to N) are prepared for the differentapplications. When a monochromatic copy job is carried out, the copycounter is caused to count up every time copying is carried out on onesheet. At this time, the increment by the counter is increased in anamount defined in the application information. Similarly, when a scanjob, a monochromatic print job, a color copy job, and a color print jobare carried out, the scan counter, the print counter, the color copycounter, and the color print counter are caused to automatically countup every predetermined operation by a controller. The general usecounter can be caused to count up at timing for the application byinstruction of the application via the general counter control API.

Specifically, when a scan job is executed by the application with anapplication number ID of 11 under the condition of FIG. 14, the count bythe counter designated by (a) in FIG. 16 is increased by ten every timescanning is carried out on one sheet. Moreover, if the general-usecounter API is called every time the application with an application IDof 11 issues a job, the count by the counter designated by (b) in FIG.16 is increased by one.

FIG. 17 is a flow chart showing the sequence of operations carried outwhen an application installed in the composite machine is uninstalledaccording to the second embodiment. Hereinafter, the operations carriedout when an application installed in the image forming apparatus isuninstalled will be described with reference to the flow chart of FIG.17. First, an application installer 203 checks whether the applicationspecified at step S1701 is under operation or not. If the application isunder operation, the uninstallation terminates immediately. If theapplication is not under operation, it can be safely uninstalled, andthus, the processing proceeds to step S1702. In step 1702, theapplication installer 203 (recognizing means) retrieves the informationof the counter correlated with the application uninstalled in step S1702and the application information from the counter number—application IDtable, and recognizes and stores it in a nonvolatile memory provided inthe image forming apparatus. The processing proceeds to step S1703.

In step S1703, it is checked whether the information has been correctlystored in the nonvolatile memory. In the case where the information hasbeen correctly stored, the processing proceeds to step S1704. In thecase where the information has not been correctly stored, theapplication is not uninstalled in practice, and the processingterminates. In step S1704, the application management module 204(counter managing means) updates the counter number—application IDtable, and releases the counter to which the application ID of theapplication to be uninstalled is allocated so that the counter becomesfree. In the next step, step S1705, the application is erased from thememory unit 6 for uninstallation. Thus, the processing terminates.

As described above, according to this embodiment, the warning dialog boxwith respect to the count-up information is displayed when anapplication is installed. Accordingly, a user can install theapplication after he or she accepts the count-up unit everypredetermined operation. Moreover, use of the general use counter isenabled based on the applications. Accordingly, the use number and theprocessing amount can be managed for each application.

When an application is uninstalled, the application information and theinformation of the used counters are stored in a memory unit in theapparatus. Thus, the application can be installed and uninstalled freelyand repeatedly without the count information being damaged.

An embodiment of the present invention in which a predeterminedoperation of an application is restricted by an upper limit set for eachapplication and for each function will be described with reference toFIGS. 18 and 19.

FIG. 18 is a flow chart showing the sequence of operations carried outby a counter updating means and a counter upper limit managing meanswhen a counter is updated according to the first embodiment. In FIG. 18,the upper limit managing means is added to the counter updating meansshown in FIG. 6. The sequence of operations carried out by the countermanaging means and the counter upper limit managing means for update ofa counter will be described with reference to the flow chart of FIG. 18.

First, at step S1801, a counter update request is received from the coreunit 10 shown in FIG. 1. The processing proceeds to step S1802. In stepS1802, the application I of the application which requests the update ofa counter is acquired. The processing proceeds to step S1802. In step1802, the application ID of the application which requests the update isacquired. The processing proceeds to step S1803. In step S1803, 0 isassigned to the variable n. The processing proceeds to step S1804. Instep S1804, it is checked whether the n-th counter is assigned to theapplication with the application ID acquired in step S1802 or not byreference to the table. If the n-th counter is allocated to theapplication with the application ID acquired in step S1802, theprocessing proceeds to step S1805. In step S1805, the n-th counter forthe present job type is updated. The processing proceeds to step S1809.On the other hand, if it is determined in step S1804 that the n-thcounter is not allocated to the application with the application IDacquired in step 1802, the processing proceeds to step S1807. In stepS1807, it is determined whether the variable n is smaller than the totalnumber N of the application counter or not. If n<N, n is increased by 1at step S1808. The processing is returned to step S1804. If it isdetermined in step S1807 that n<N is not satisfied, the processingproceeds to step 1806. In step S1806, only the counter for counting thetotal number is updated, and then, the processing terminates.

In step S1809, the n-th upper limit for the present job is referred inthe counter upper table shown in FIG. 19, and is compared with thecounter value updated at the step S1805. If the comparison result showsthat the counter value does not exceed the upper limit, the total numbercounter is updated in step S1806, and the processing terminates. If thecounter value exceeds the upper limit, the core unit 10 of FIG. 1 isinstructed on the forced termination of the job in step 1810. Theprocessing proceeds to step S1811. In step S1811, an event representingthe forced termination of the job is sent and posted to the application(205 in FIG. 2) which issued the job corresponding to the application IDacquired to at the step S1802. In step S1805, the total number counteris updated, and the processing terminates.

According to this embodiment, the job is forcibly terminated in stepS1810. However, the application may cause a predetermined operation. Inparticular, an event representing that the counter exceeds the upperlimit may be sent and posted to the application which issued the jobwithout the job being forcibly terminated. Referring to thepredetermined operation, the application to which the event is posteddoes not issue succeeding new jobs, warns a user, e.g., that the uselicense of the application which is an execution object is deficient,displays in the operation unit 14 of the composite machine 100 a dialogbox for promoting a new license file about the application to beinstalled, or communicates these contents audibly by means of a speaker(not shown) provided for the computer, and so forth. Similarly, displayinformation for displaying a dialog box is transmitted to the hostcomputer or the network server to be displayed on the screen of thenetwork server or the host computer.

FIG. 19 shows an example of a counter upper limit management tablecontained in the composite machine 100. In this example, upper limitsfor three types of counters, that is, copy counters, print counters, andscan counters are provided. N counters (counter numbers of 1 to N) areprepared for each type and for different applications.

In the case where the contents of the counter number—application IDtable are the same as shown in FIG. 4, the upper limit designated by (a)in FIG. 19 is referred to by the application with an application ID of11. The upper limit designated by (b) in FIG. 19 is referred to by theapplication with an application ID of 51. For example, when theapplication with an application ID of 11 executes a copy job, the upperlimit designated by (c) in FIG. 19 is referred to. Similarly, when theapplication executes a print job, the upper limit designated by (c) inFIG. 19 is referred to. When the application executes a scan job, theupper limit designated by (d) in FIG. 19 is referred to. Moreover, inthe case where a print job, a scan job, or a copy job is submitted by aremote host computer, the upper limit corresponding to the applicationID of the application issuing the job is referred to, provided that theapplication ID has been registered in the table. As described withreference to FIG. 7, the job is rejected, if the application ID of theapplication issuing the job is not registered in the table. Therefore,in this case, the upper limit does not need to be registered. Forexample, an OCR application for outputting data including textinformation which is coded to an ASCII code by recognizing andextracting character information from an image and a scanner functioncorrelated with the OCR application may be combined. The use amount canbe limited, grasped, and accounted based on the function of thecomposite machine combined with the application which can provide anadditional value for the machine. In particular, in a case where theupper limit is set for the combination of the program of the OCRapplication with the scanner function of the composite machine 100 sothat the composite machine 100 can not be used, the applicationmanagement module 905 controls a controller via the API to limit thefunction of the composite machine 100. In addition, examples of thecombination of an application program with the function of the compositemachine 100 include the combination of a high-quality image processingapplication with a printer function, that of an image processingapplication with a scanner function, that of an office application forspreadsheet or document preparation with a printer, a facsimile, or ascanner, and so forth.

As described above, the respective functions of the image formingapparatus and the count values and the upper limits of which each numberis equal to that of the applications using the respective functions canbe managed. Moreover, the count values can be summed up for eachapplication and for each function and counted, and simultaneously, theupper limits can be managed. Thereby, the use amount of an applicationcan be counted, and the upper limit can be managed every predeterminedoperation of the application.

For example, in the case where a copy application corresponds to acounter number of 6, the use of the copy application causes the copycounter corresponding to the counter number of 6 to count up, and thecopy function is limited by the upper limit corresponding to the counternumber of 6. In the case where the upper limit is set by a predeterminedlicense mechanism, the application-usable number can be provideddepending on a license. Thus, pre-accounting based on the use number ofthe application becomes possible. Examples of the functions of the imageforming apparatus may include facsimile reception or transmission, andso-called bookbinding processing such as finishing, book-binding,punching, or the like in addition to copy, print, and scan. Thus, theupper limit can be set for an application using a function, that is, forthe combination of a predetermined application with the functionoperated by the application. Accordingly, the control of a predeterminedfunction can be limited by the application, and the output of a jobwhich is issued based on the control of the function by the applicationcan be limited of forcedly erased.

Other Embodiments

The operations described in the present specification and shown in FIGS.3, 6, 8, 11, 15, 17, and 18 are carried out according to externallyinstalled programs and by means of an information-processing device andthe image-forming apparatus. An information group including the programsmay be supplied to the information processing device and the imageforming apparatus from memory media such as CD-ROM, flash memories, FD,and so forth or from external memory media via a network. Thus, thepresent invention may be applied.

Needless to say, a memory medium in which the program code of thesoftware executing the functions described in the embodiments isrecorded may be supplied to a system or the apparatus, and a computer(or CPU or MPU) for the system or apparatus reads and executes theprogram code stored in the memory medium, as described above. Thus, theobjects of the present invention can be also achieved.

In this case, the program code itself read from the memory mediumcarries out the novel functions of this embodiment. Accordingly, thememory medium having the program code recorded therein constitutes thisembodiment. Examples of the memory medium for supplying the program codeinclude a floppy disk, a hard disk, an optical disk, opto-magnetic disk,DVD, CD-ROM, a magnetic tape, a nonvolatile memory card, ROM, EEPROM,and the like.

The functions described in the embodiments are realized by execution ofthe program cord read by the computer, and moreover, OS (operatingsystem) or the like operating under the computer may carry out at leasta part of the practical processes based on instruction by the programcode, whereby the operations described in the embodiments are performed.Moreover, needless to say, the program code read from a memory mediummay be written in a memory of a function-extension board inserted in thecomputer or a function-extension unit connected to the computer, andthereafter, CPU or the like provided in the function-extension board orthe function-extension unit carries out at least a part of the practicalprocesses, whereby the functions described in the embodiments arerealized.

According to the embodiments of the present invention, a plurality ofcounters are prepared in the image forming apparatus. Applications andthe counters are dynamically correlated with each other when theapplications are installed. Counters free when the applications areinstalled can be dynamically allocated. The counters are released whenthe applications are uninstalled. Thereby, count information can beproperly managed for each application even while an application is addedor deleted. Moreover, thereby, accounting corresponding to the useamount of an application can be properly distributed to an applicationvendor which has developed the application in the image formingapparatus.

For the processes provided by the programs in the image formingapparatus, the count information can be individually managed. Thus, animage forming apparatus can be provided in which the use amount of eachprogram can be easily managed.

The counters are managed so as to be released in response to thedeletion of the programs installed in the image forming apparatus. Thus,an image forming apparatus can be provided in which undesired counterscan be prevented from increasing in number, and the use amount of eachprogram being practically used in the image forming apparatus can beeasily managed.

The counters are managed so as to be released in response to addition ofthe attribute information of each program in the image formingapparatus. The programs can be securely correlated with the counters andmanaged in the form of a table. Thus, an image forming apparatus can beprovided in which the use amount of a program being used in the imageforming apparatus can be securely acquired and displayed to be managed.

Moreover, the use amount is managed for each function of the imageforming apparatus utilized by the program. Therefore, accounting or theuse amount can be managed depending on the value added to by theapplication, the process provided by the application, and the functionprovided by the composite machine.

The counter control APT which has high portability and re-usability andis interpreted and executed by the interpreter is provided. Accordingly,the counter control program can be easily prepared, and also, can beeasily re-used and ported to other image forming apparatus.

AS mechanism is provided in which the use amount of each program ismanaged depending on the function of the image forming apparatusprovided by the program. Thus, an image forming apparatus can beprovided in which the use condition of each program can be properlygrasped based on the functions of the image forming apparatus and theprogram configuration.

While the present invention has been described with reference to whatare presently considered to be the preferred embodiments, it is to beunderstood that the invention is not limited to the disclosedembodiments. On the contrary, the invention is intended to cover variousmodifications and equivalent arrangements included within the spirit andscope of the appended claims. The scope of the following claims is to beaccorded the broadest interpretation so as to encompass all suchmodifications and equivalent structures and functions.

1-16. (canceled)
 17. An image forming apparatus which is controlled byan operating system and capable of implementing at least one applicationprogram controlling at least one function provided by the image formingapparatus, the image forming apparatus comprising: a counter managing ause amount of each application program; means for managing the useamount of the application program managed by the counter, by using apredetermined counter control application program interface provided ina layer same as an interpreter, the interpreter operating on theoperating system; and means for identifying a counter capable of beingrelated to an application program to be installed, wherein the useamount managing means relates the application program to a new counterby producing the new counter, if the identifying means is not able toidentify the counter capable of being related to the applicationprogram.
 18. The image forming apparatus according to claim 17, whereinthe use amount managing means resets the counter identified by theidentifying means.
 19. The image forming apparatus according to claim17, wherein the use amount managing means manages the use amount of theapplication program in accordance with an execution number of theapplication program.
 20. The image forming apparatus according to claim17, wherein the use amount managing means manages the use amount of theapplication program based on time for using of the application program.21. The image forming apparatus according to claim 17, wherein the useamount managing means manages the use amount of the application programbased on a number of a predetermined operation instructed by theapplication.
 22. The image forming apparatus according to claim 17,wherein the use amount managing means manages the use amount of theapplication program by combination of the functions provided by theimage forming apparatus and the application program controlling thefunctions provided by the image forming apparatus.
 23. An image formingapparatus which is controlled by an operating system and capable ofimplementing at least one application program controlling at least onefunction provided by the image forming apparatus, the image formingapparatus comprising: a counter managing a use amount of eachapplication program; and means for managing the use amount of theapplication program managed by the counter, by using a predeterminedcounter control application program interface provided in a layer sameas an interpreter, the interpreter operating on the operating system;wherein the use amount managing means manages the counter by a tablewhich relates an identifier corresponding to the application program toan identifier corresponding to the counter.